package com.tnxst.phexamination.utils;

import com.tnxst.phexamination.callback.AppCallBack;
import com.tnxst.phexamination.constant.HISConfig;
import com.zhy.http.okhttp.OkHttpUtils;

import java.util.Map;
import okhttp3.MediaType;

 
/**
 * created with IntelliJ IDEA
 *
 * @author: create by limu
 * Date: 2019/11/12
 * Time：9:39
 */
public class RequestUtils {
 
    public static final MediaType FORM_CONTENT_TYPE = MediaType.parse("application/json;charset=utf-8");
 
    /**
     * post请求不传递参数
     *
     * @param url      请求地址
     * @param callback 执行函数
     */
    public static <T> void postEmpty(String url, final AppCallBack callback) {
        OkHttpUtils.post()
                .url(url)
                .build()
                .execute(callback);

    }
 
    /**
     * get请求不传递参数
     *
     * @param url      请求地址
     * @param callback 执行函数
     */
    public static <T> void getEmpty(String url, final AppCallBack callback) {
        OkHttpUtils.get()
                .url(url)
                .build()
                .execute(callback);
    }
 
    /**
     * 发送json数据
     *
     * @param url       请求地址
     * @param json 发送json数据
     * @param callback  执行函数
     */
    public static <T> void postJson(String url, Object json, final AppCallBack callback) {
        OkHttpUtils.postString()
                .url(url)
                .content(GsonUtils.toJson(json))
                .mediaType(FORM_CONTENT_TYPE)
                .build()
                .execute(callback);
    }


    /**
     * 发送表单数据
     *
     * @param url       请求地址
     * @param map       请求数据
     * @param callback  执行函数
     */
    public static <T> void postForm(String url, Map<String,String> map, final AppCallBack callback) {
        OkHttpUtils.post()
                .url(url)
                .params(map)
                .build()
                .execute(callback);
    }
 
 
    /**
     * 发送表单数据
     *
     * @param url       请求地址
     * @param map 请求参数
     * @param callback  执行函数
     */
    public static <T> void getForm(String url, Map<String,String> map, final AppCallBack callback) {
        OkHttpUtils.get()
                .url(url)
                .params(map)
                .build()
                .execute(callback);
    }

 
    /**
     * 组合请求地址
     *
     * @param url 映射地址
     * @return 请求地址
     */
    public static String splicingUrl(String url) {
        return HISConfig.REMOTE_URL + url;
    }
 
}